| 1 |
难度:★★★
|
考点:
《基础开发能力考核大纲V1.0》2.2.1 模式识别 2.2.3 问题分解
知识点:
逻辑控制
说明:
|
■ 按下述步骤,累计分数,满分15分。
◇ 遍历数组逻辑正确,不遗漏元素,得5分
◇ 判断负数语句正确有效,得3分
◇ 能够正确识别连续的三个负数,逻辑正确有效,得7分
■ 逻辑有瑕疵不严密的,酌情扣分。
■ 如果考生将本题理解成存在“-2,-3,-4”这样的三个负数(不考虑出现顺序),参考上述标准,只要逻辑处理正确,同样得分。
|
int[] a[100];
for(int i=0;i<a.lenght-3;i++)
{
if((a[i] < 0 )&&(a[i+1] < 0 )&&(a[i+2] < 0))
{
return true;
}
else{
return false;
}
}
|
8.0/15.0
|
| 2 |
难度:★★★★★
|
考点:
《基础开发能力考核大纲V1.0》2.2.3 问题分解 2.2.4 算法构建
知识点:
问题分解、算法构建
说明:
循环遍历购物车内的商品信息,根据单价和数量求和,再计算折扣率
|
■ 按下述步骤,累计分数,满分15分。
◇ 有一种合理的保存购物车内信息的数据结构,比如:对象数组、多维数组等,得3分
◇ 正确循环遍历购物车内的商品,得4分
◇ 计算每种商品的总价,并累加得到购物车合计总金额,得6分
◇ 根据总金额得到折扣率的处理正确,得2分
■ 逻辑有瑕疵不严密的,酌情扣分。
|
struct PLU
{string name;
int price;
int nem;}
struct PLU plu[20]={"A",10,2,"B",11,3,.......};
double fun(){
int sum = 0;
for(int i=0;i<20;i++)
{
sum[i] = plu[i].price*plu[i].num;
}
if(sum[i]>500){return 0.8;}
else if(sum[i]>=300){return 0.9;}
}
else{return 1.0;}
|
5.0/15.0
|
| 3 |
难度:★★★
|
考点:
依据:《基础开发能力考核大纲V1.0》2.1.5 函数2.2.1 模式识别
知识点:
函数、模式识别、数字处理
|
■ 按下述步骤,累计分数,满分15分。
◇ 遍历数组逻辑正确,不遗漏元素,得4分
◇ 算法正确,能够得出最大值和最小值,得7分
◇ 最大值和最小值是否偶数判断正确,符合题意,得4分
■ 逻辑有瑕疵不严密的,酌情扣分。
|
bool fun(){
int a[6] = {3,6,7,1,0,26};
for(i=0;i<a.Length,i++){
int p, q, temp;
for(p=0; p<6; i++){
for(q=0; q<10-1-p; q++){
if(a[q] > a[q+1]){
temp = a[q];
a[q] = a[q+1];
a[q+1] = temp;}
}
}
}
if((a[0] %2==0)&&(a[5] %2==0){return true;}
|
8.0/15.0
|
| 4 |
难度:★★★★
|
考点:
《基础开发能力考核大纲V1.0》2.1.3变量和类型
知识点:
对引用变量实现机制的理解
说明:
引用变量自身保存的地址不变,但是目标地址空间存储的信息有可能变化。
|
■ 仅回答是否,但是没有原因或解释的,不得分。
■ 回答有可能,且回答了以下任一要点的,酌情得7-10分
◇ 引用变量指向的地址不变,但是该地址所保存的值可能变化。
◇ 能清晰表达出引用变量指向地址,和目标地址空间所存储的信息之间的区别和关系。
◇ 其他同等意思,或体现答题人对引用变量底层原理理解正确且扣题的回答。
|
可能,引用类型变量存放地址,地址中存放的值可能改变,如函数有引用类型的参数时,则函数执行后指向的地址不变,改变了地址中存放的值。
|
7.0/10.0
|
| 5 |
难度:★★★★
|
考点:
《基础开发能力考核大纲V1.0》 2.1.4 基础数据结构
知识点:
对数组的理解
说明:
下标是计算内存地址的偏移量,数组中的数据在连续内存区域按顺序存储,并不需要特意保存下标。
|
■ 回答不占用,且能够说明以下任何一个要点的,酌情得7-10分。
◇ 数组数据连续存储,下标是偏移量(或根据下标可以计算得到地址等)。
◇ 数组的下标并没有存储,只是访问数组时的索引值。
◇ 其他能体现对数据存储结构理解的答案,其扣题的。
■ 回答不占用,没有解释说明的,不得分。
|
不占用。指针或下标指向地址,地址本身不占内存,存储地址的指针才占用内存,只有数组元素才有自己的空间和地址。
|
10.0/10.0
|
| 6 |
难度:★★★★
|
考点:
《基础开发能力考核大纲V1.0》 2.1.1 冯·诺依曼计算机
知识点:
对程序启动过程的理解
说明:
从外部存储器/网络读取数据到内存,通常涉及到两个过程:一个是单纯的I/O过程,即读取数据到内存的过程;另一个是将读取的数据初始化为可用的数据结构/对象实例的过程(可以理解为“反序列化”)。
|
■ 能够回答出下述任意一个要点的,酌情得7-10分
◇ 对数据进行压缩,加快数据读取速度。
◇ 用多线程,提高数据初始化/反序列化速度。
◇ 将网络上读取的数据缓存到本地磁盘,从而提高数据加载速度。
◇ 延迟加载数据,仅读取必要的数据,其他数据在游启动后需要时加载。
◇ 其他能体现对程序加载数据过程、原理有正确认识和理解的回答,且扣题的。
■ 回答关闭非必要进程、增加内存、提高磁盘性能等措施的不得分。
|
减少程序中定义的常量,宏定义等,减少占用内存。
|
3.0/10.0
|
| 7 |
难度:★★★
|
考点:
《基础开发能力考核大纲V1.0》2.1.3 变量和类型
知识点:
对布尔类型和计算机底层处理的理解
说明:
高级语言中提供的布尔类型本质上一种约定的实现,既约定某个值为true,某个值为false,低层实现可以采用整形也可以用枚举。注意:C语言中虽然不提供布尔类型,但是约定了0为false,非0为true,本质上相当于使用数值类型代替布尔类型。
|
■ 回答采用整形/字符串/枚举等,并且约定了true和false对应的具体值,得5分。
■ 回答出选择某种类型的理由,比如整形运算速度快,字符串/枚举可读性高等,得5分。
|
没有定义布尔类型,判断真假时可以以0为假,非0为真,使用逻辑变量的做法。定义一个int类型变量,当变量值为0时表示false,值为1时表示true。也可以使用宏定义。
|
5.0/10.0
|
| 8 |
难度:★★★
|
考点:
《基础开发能力考核大纲V1.0》2.2.2 业务抽象
知识点:
业务抽象
|
■ 按下述步骤,累计分数,满分15分。
◇ 能够用恰当的数据结构(比如map、数组、字符串)存储“食物”和“种类”映射关系的,得5分
◇ 实现“食物”和“种类”换算处理的(循环遍历、key求value、字符串查找等方式),算法正确有效的,得10分
■ 逻辑有瑕疵不严密的,酌情扣分。
■ 使用if else、switch等方式硬编码的,最多得7分。
|
string a[100]={“胡萝卜”,“草莓”};
string b[100]={“蔬菜”,“水果”};
fun(string str)
{
cin>>str>>endl;
if (memcpy"
}
|
5.0/15.0
|
| 9 |
难度:★★★★
|
考点:
《基础开发能力考核大纲V1.0》2.1.3变量和类型
知识点:
对引用类型变量的理解
说明:
引用类型的变量作为形式参数时,因为传递的是地址而不是值拷贝,如果在函数内修改了引用变量所指向数据的值,那么这个修改会对函数调用方的后续处理产生影响,要注意这种行为是否在预期之中。
|
■ 按下述情形评分:
◇ 回答引用类型变量传地址,对其值进行修改产生的影响在函数执行完仍然存在(或影响原变量的值,或影响调用方局部变量的值等),酌情得7~10分
◇ 回答引用类型变量作为参数是地址拷贝,而不是值拷贝的。酌情得3~5分
◇ 其他引用变量作为形式参数的注意事项的回答,能体现对引用变量做形参内涵理解的,酌情得3~10分
|
引用作为函数参数时,形参是声明的引用,不需要初始化。在声明一个引用后,不能再作为另一变量的引用。 不能建立引用数组。
|
4.0/10.0
|